//
//  CustomVC.m
//  FaceCard
//
//  Created by 瞿伦平 on 2017/5/14.
//  Copyright © 2017年 瞿伦平. All rights reserved.
//

#import "CustomVC.h"

@interface CustomVC ()

@end

@implementation CustomVC

-(id)init
{
    self = [super init];
    if (self) {
        self.tableArr = [NSMutableArray array];
    }
    return self;
}

- (void)viewDidLoad {
    [super viewDidLoad];
    self.beginHeaderRereshingWhenViewWillAppear = YES;
    
    //加载数据
    __weak typeof(self) weakSelf = self;
    self.tableView.refreshingBlock = ^(int page) {
        [weakSelf reloadTableViewDataSourceWithPage:page];
    };
}

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    
    if (self.tableArr.count == 0 && _beginHeaderRereshingWhenViewWillAppear==YES && self.tableView.mj_header!=nil)
        [self performSelector:@selector(beginHeaderRereshing) withObject:nil afterDelay:0.1];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/



-(void)addTableViewWithStyleGrouped
{
    if (self.tableView==nil ) {
        self.tableView = [[QUTableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];
        self.tableView.delegate = self;
        self.tableView.dataSource = self;
        self.tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
        [self.view addSubview:self.tableView];
        self.tableView.autoresizingMask = UIViewAutoresizingFlexibleHeight;
        self.tableView.tableFooterView = [[UIView alloc] init];
        self.tableView.backgroundColor = COLOR(247, 247, 247);
        //self.tableView.emptyDataSetSource = self;
        //self.tableView.emptyDataSetDelegate = self;
        self.tableView.tableFooterView = [UIView new];
        
//        if (@available(iOS 11.0, *)) {
//            self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
//        } else {
//            self.automaticallyAdjustsScrollViewInsets = NO;
//        }
        
        [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
            //            make.edges.equalTo(self.view);
            //            make.height.equalTo(self.view.mas_height);
            make.left.right.bottom.equalTo(self.view);
            make.top.equalTo(self.view.top).offset(NAVBAR_Height-1);
        }];
    }
}

- (void)addTableView
{
    
    if (self.tableView==nil ) {
        self.tableView = [[QUTableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
        self.tableView.delegate = self;
        self.tableView.dataSource = self;
        self.tableView.separatorStyle = UITableViewCellSelectionStyleNone;
        
        self.tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
        [self.view addSubview:self.tableView];
        self.tableView.autoresizingMask = UIViewAutoresizingFlexibleHeight;
        self.tableView.tableFooterView = [[UIView alloc] init];
        self.tableView.backgroundColor = COLOR(247, 247, 247);
        //self.tableView.emptyDataSetSource = self;
        //self.tableView.emptyDataSetDelegate = self;
        self.tableView.tableFooterView = [UIView new];
        
//        if (@available(iOS 11.0, *)) {
//            self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
//        } else {
//            self.automaticallyAdjustsScrollViewInsets = NO;
//        }
        
        [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
            make.left.right.bottom.equalTo(self.view);
            make.top.equalTo(self.view.top).offset(NAVBAR_Height);
//            make.edges.equalTo(self.view);
//            make.height.equalTo(self.view.mas_height);
        }];
    }
}

-(void)setTableViewHaveHeader
{
    if (_tableView == nil)
        [self addTableView];
    
    [self.tableView setHaveHeader];
}

-(void)setTableViewHaveFooter
{
    if (_tableView == nil)
        [self addTableView];
    
    [self.tableView setHaveFooter];
}

-(void)setTableViewHaveHeaderFooter
{
    [self setTableViewHaveHeader];
    [self setTableViewHaveFooter];
}


-(void)beginHeaderRereshing
{
    [self.tableView beginHeaderRereshing];
}

- (void)reloadWithTableArr:(NSArray *)arr info:(APIObject*) info
{
    [self.tableView doneLoadingTableViewDataWithTableArr:self.tableArr addArr:arr info:info];
}


- (void)reloadTableViewDataSourceWithPage:(int)page
{
    
}


- (void)doneLoadingTableViewData
{
    [self reloadWithTableArr:nil info:[APIObject infoWithErrorMessage:@""]];
}

//-(void)setTableViewHaveHeader
//{
//    if (_tableView == nil)
//        [self addTableView];
//    
//    __weak typeof(self) weakSelf = self;
//    MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
//        [weakSelf loadHeaderRefreshing];
//    }];
//    self.tableView.mj_header = header;
//    
//    [header setTitle:@"" forState:MJRefreshStateIdle];
//    [header setTitle:@"" forState:MJRefreshStatePulling];
//    [header setTitle:@"" forState:MJRefreshStateRefreshing];
//}
//
//-(void)setTableViewHaveFooter
//{
//    if (_tableView == nil)
//        [self addTableView];
//    
//    __weak typeof(self) weakSelf = self;
//    MJRefreshAutoNormalFooter *footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
//        [weakSelf loadFooterRefreshing];
//    }];
//    footer.automaticallyRefresh = YES;  // 禁止自动加载
//    footer.refreshingTitleHidden = YES;
//    self.tableView.mj_footer = footer;
//    
//    self.tableView.mj_footer.hidden = YES;
//}
//
//-(void)setTableViewHaveHeaderFooter
//{
//    [self setTableViewHaveHeader];
//    [self setTableViewHaveFooter];
//}
//
//
//#pragma mark -
//#pragma mark Data Source Loading / Reloading Methods
//
//-(void)beginHeaderRereshing
//{
//    self.startId = kTableFirstDataNumber;
//    [self.tableView.mj_header beginRefreshing];
//}
//
//-(void)loadHeaderRefreshing
//{
//    self.tableView.mj_footer.hidden = YES;
//    if (self.startId != kTableFirstDataNumber)
//        self.startId = kTableFirstDataNumber;
//    self.tableIsReloading = YES;
//    //[self.tableView reloadEmptyDataSet];
//    [self reloadTableViewDataSource];
//}
//
//-(void)loadFooterRefreshing
//{
//    self.startId ++;
//    self.tableIsReloading = YES;
//    [self reloadTableViewDataSource];
//}
//
//-(void)doneHeaderRereshing
//{
//    if (self.tableView.mj_footer != nil) {
//        if (self.tableArr.count > 0)
//            self.tableView.mj_footer.hidden = NO;
//        else
//            self.tableView.mj_footer.hidden = YES;
//    }
//    
//    self.tableIsReloading = NO;
//    
////    if (self.tableArr.count == 0) {
////        if (self.errMsg.length > 0)
////            [self addEmptyView:self.tableView andType:ZLEmptyViewTypeWithNoError];
////        else
////            [self addEmptyView:self.tableView andType:ZLEmptyViewTypeWithNoData];
////    }
//    
//    [self.tableView reloadData];
//    [self.tableView.mj_header endRefreshing];
//}
//
//-(void)doneFooterRereshing
//{
//    self.tableIsReloading = NO;
//    [self.tableView reloadData];
//    [self.tableView.mj_footer endRefreshing];
//}
//
//
//- (void)reloadTableViewDataSource
//{
//    
//}
//
//
//- (void)reloadWithTableArr:(NSArray *)arr info:(APIObject*) info
//{
//    if (info == nil && arr==nil) {
//        [self doneLoadingTableViewData];
//        return;
//    }
//    //    if (self.startId == kTableFirstDataNumber)
//    //        self.startId = kTableReloadDataNumber;
//    int temIndex = self.startId;
//    if (self.startId != kTableAllDataNumber) {
//        temIndex ++;
//    }
//    if (arr.count == APITableLimit)
//        self.tableView.mj_footer.state = MJRefreshStateIdle;
//    else
//        self.tableView.mj_footer.state = MJRefreshStateNoMoreData;
//    
//    if (self.startId == kTableFirstDataNumber && [info.status isEqualToString: BOOL_NO]) {
//        [self.tableArr removeAllObjects];
//        self.errMsg = info.info!=nil ? info.info : @"网络错误";
//        
//    } else {
//        if (arr.count > 0) {
//            if (self.startId <= kTableFirstDataNumber) {
//                [self.tableArr removeAllObjects];
//                self.tableArr = [arr mutableCopy];
//            } else
//                [self.tableArr addObjectsFromArray:arr];
//        } else
//            self.errMsg = @"暂无数据";
//    }
//    
//    if ([info.status isEqualToString: BOOL_NO] && self.startId>0)
//        self.startId --;
//    
//    [self doneLoadingTableViewData];
//}
//
//
//- (void)doneLoadingTableViewData
//{
//    if (self.startId == kTableFirstDataNumber)
//        [self doneHeaderRereshing];
//    else
//        [self doneFooterRereshing];
//}
//
//
//
#pragma mark -
#pragma mark Table view data source
//- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
//    if (_tableArr.count > 0)
//        return _tableArr.count;
//    else {
//        if (_tableIsReloading)
//            return 0;
//        else
//            return 1;
//    }
//}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
//    if (_tableIsReloading)
//        return 44;
//    else
        return 50;
}

// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    
    static NSString *CellIdentifier = @"Cell_Something";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
        cell.editing = NO;
        cell.selectionStyle = UITableViewCellSelectionStyleNone;
        cell.textLabel.textAlignment = NSTextAlignmentCenter;
        cell.textLabel.font = [UIFont systemFontOfSize:12];
    }
    
//    if (_tableIsReloading)
        cell.textLabel.text = @"";
//    else
//        cell.textLabel.text = self.errMsg;
    
    return cell;
}

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
}


#pragma mark -- tableviewDelegate
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return self.tableArr.count;
}


@end
